Volatile memory, such as dynamic random-access memory (DRAM), provides temporary storage space that can be accessed by a computer processor at a reasonable speed. The volatile memory can be used to store instructions and data, which can then be fetched to the computer processor for processing. The computer processor can also store a result of the processing into the volatile memory for subsequent processing. Although DRAM provides reasonable access speed, memory access latency remains a bottleneck to the computer processor, as the processing speed of computer processor, as well as the storage capacity of DRAM, keeps increasing thanks to Moore's Law. Accordingly, contemporary computer processors typically deploy a hierarchical memory system including a cache device, to speed up memory access.
Cache device typically provides a smaller storage space, but at higher access speed, than a DRAM device. The computer processor can use the cache device to store data that is likely to be accessed in the future. To store new data in the cache device, the computer processor may also need to evict old data from the cache device to make room for the new data.